package com.yuyou.fn.report.mapper;

import com.github.wens.mybatisplus.mapper.AutoMapper;
import com.yuyou.fn.educational.vo.SimpleQueryVo;
import com.yuyou.fn.educational.vo.TeacherPeriodRefundDetailVo;
import com.yuyou.fn.report.entity.MergeStudentRegDetail;
import com.yuyou.fn.report.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *
 * StudentRegDetail 表数据库控制层接口
 *
 */
public interface MergeStudentRegDetailMapper extends AutoMapper<MergeStudentRegDetail,Long> {

   List<ClassBigRegNum> countBigRegNumByClassId(@Param("busTeamIds") List<Long> busTeamIds, @Param("periodIds")List<Long> periodIds, @Param("gradeIds") List<Long> gradeIds,@Param("subjectIds") List<Long> subjectIds,@Param("lectureNum") Integer lectureNum);

   List<AreaTeamRegDetailVo> countAreaTeamRegDetail(@Param("studentRegDetailQueryVo") StudentRegDetailQueryVo studentRegDetailQueryVo) ;

   List<RegDetailByClass> findClassRegDetail(@Param("classIds")List<Long> classIds);

   List<RegRelativeVo> queryRegRelative(@Param("periodQueryRegVo")PeriodQueryRegVo periodQueryRegVo,@Param("regRelativceQueryVo") RegRelativceQueryVo regRelativceQueryVo) ;

   List<SeniorStudentDetailVo>  findSeniorStudentDetail();

   List<PeriodBusTeamGradeRegVo> findRegSituation(@Param("studentRegDetailQueryVo") StudentRegDetailQueryVo studentRegDetailQueryVo, @Param("begin")int begin, @Param("limit") int limit);

   Integer countRegSituation(@Param("studentRegDetailQueryVo") StudentRegDetailQueryVo studentRegDetailQueryVo);

   SumRegVo findSumReg(@Param("studentRegDetailQueryVo") StudentRegDetailQueryVo studentRegDetailQueryVo);

   List<TeacherPeriodRefundDetailVo> findTeacherPeriodRefundDetail(@Param("teacherId") long teacherId, @Param("periodId") long periodId);

   List<BusTeamPeriodGradeRegNumVo> findBusTeamPeriodGradeRegNum(@Param("simpleQueryVo")SimpleQueryVo simpleQueryVo,@Param("begin") int begin,@Param("pageSize") int pageSize);

   Integer countBusTeamPeriodGradeRegNum(@Param("simpleQueryVo")SimpleQueryVo simpleQueryVo);

   List<NewOldStudentBranchAdvanceVo> findNewOldStudentBranchAmount(@Param("studentRegDetailQueryVo") StudentRegDetailQueryVo studentRegDetailQueryVo);

   List<SeqStepStudentBranchAdvanceVo> findSeqStepStudentBranchAmount(@Param("regRelativceQueryVo")RegRelativceQueryVo regRelativceQueryVo,@Param("periodQueryRegVo")PeriodQueryRegVo periodQueryRegVo);

   List<NoCounselorBranchVo> countBusTeamOlineNoCounselorBranch(@Param("studentRegDetailQueryVo") StudentRegDetailQueryVo studentRegDetailQueryVo);

   List<CounselorBranchAdvanceVo> findCounselorBranchAdvanceByStudentState(@Param("studentRegDetailQueryVo") StudentRegDetailQueryVo studentRegDetailQueryVo);

   List<ClassPreIncomeDetailVo> findClassPreIncomeDetailVo(@Param("classPreIncomeDetailQueryVo") ClassPreIncomeDetailQueryVo classPreIncomeDetailQueryVo);

   List<ClassRealAmount> countRealAmount(@Param("classIds") List<Long> classIds);

   List<CampusPeriodsStudentNumVo> findCampusPeriodsRegNum(@Param("periodIds") List<Long> periodIds);

   List<ClassAmountVo> findClassAmountByPeriodId(@Param("periodId") long periodId);
}